/**
 * Copyright 2009 by Christian Scheid. This file is part of the switch eclipse plugin and is licensed under the
 * GPL version 3. Please refer to the URL http://www.gnu.org/licenses/gpl-3.0.html for details.
 */
package org.digitalsoul.switchplugin.matchers;

import org.digitalsoul.switchplugin.model.Criteria;
import org.digitalsoul.switchplugin.model.ISwitchFile;


public abstract class Matcher extends Criteria {
    
    public boolean match(ISwitchFile file) {
        boolean performMatch = performMatch(file);
        if (isInverse) {
            return !performMatch;
        }
        else {
            return performMatch;
        }
    }
    
    protected abstract boolean performMatch(ISwitchFile file);
    
    @Override
    public boolean isInversable() {
        return true;
    }
}
